package com.hanserwei.mapper;

import com.hanserwei.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * UserMapper接口提供了对User实体的基本数据库操作方法。
 */
public interface UserMapper {

    /**
     * 添加一个新的用户到数据库中。
     *
     * @param user 要添加的用户对象，包含用户的详细信息。
     */
    void addUser(User user);

    /**
     * 根据用户ID从数据库中获取用户信息。
     *
     * @param id 用户的唯一标识符。
     * @return 返回与给定ID匹配的用户对象，如果未找到则返回null。
     */
    User getUserById(Long id);

    /**
     * 根据用户ID更新用户的名称。
     *
     * @param name 要更新的新用户名。
     * @param id   需要更新名称的用户的ID。
     */
    void updateUserNameById(@Param("name") String name, @Param("id") Long id);

    /**
     * 获取数据库中所有的用户列表。
     *
     * @return 返回所有用户的列表。
     */
    List<User> getAllUsers();
}
